﻿//8.使用编程练习2中的拷贝函数，把一个内含7个元素的数组中第3～第5 个元素拷贝至内含3个元素的数组中。该函数本身不需要修改，只需要选择 合适的实际参数（实际参数不需要是数组名和数组大小，只需要是数组元素的地址和待处理元素的个数）。
#include <stdio.h>
#define COLS 7
void copy_arr(double target1[], double source[], int c);
void copy_ptr(double* target2, double* source, int c);
void copy_ptrs(double* target3, double* source, double* last);
int main(void)
{
    double source[7] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 };
    double target1[3];
    double target2[3];
    double target3[3];
    copy_arr(target1,&source[2],3);
    printf("\n");
    copy_ptr(target2,&source[2],3);
    printf("\n");
    getchar();
    return 0;
}
void copy_arr(double target1[], double source[], int c)
{
    int i;
    for (i = 2; i < c - 2; i++)
        target1[i - 2] = source[i];
    for (i = 0; i < 3; i++)
        printf("%.1f ", target1[i]);
}
void copy_ptr(double* target2, double* source, int c)
{
    int i;
    for (i = 2; i < c - 2; i++)
        *target2++ = *(source + i);
    // 将 *source 所指地址的内容赋给 *target2 所指地址的内容。储存单元 +1
    for (i = 0; i < 3; i++)
        printf("%.1f ", target2[i]);
}
